/*
 * =====================================================================================
 *
 *       Filename:  policeagent.h
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  03/01/2011 05:29:02 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Ernesto Nunes
 *
 * =====================================================================================
 */

/*This guard makes sure the header file is only
  included once.*/
#ifndef POLICE_AGENT_H_
#define POLICE_AGENT_H_


#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <list>

namespace police{

class PoliceAgent {

	public:
		/*Is this the global probabilty table? If so, it will need to live
			someplace else. GWJ */
		std::map<std::string,double> roadProbs;

		//getters and setters

		/*Technically speaking, there is no problem putting the code for small functions in the header file.
		  So functions like these are fine in the header file as long as they don't get too long. Once they get 
		  bigger than one or two lines, they should be put in the source file. GWJ*/
		std::string getId(){
			return ivId;
		}

		void setId(std::string iId){
			ivId.assign(iId);
		}

		double getReward(){
			return ivReward;
		}

		void setReward(double iReward){
			ivReward = iReward;
		}

	private:
		/*Should this be a string or a number? GWJ*/
		std::string ivId;

		std::string ivRoadId;
		double ivReward;

}; //end class PoliceAgent

} //end namespace
#endif